package com.wkbb.basic.service;

import com.github.pagehelper.PageInfo;
import com.wkbb.basic.model.SysRole;
import com.wkbb.basic.model.SysRoleFunction;
import com.wkbb.basic.model.SysRoleFunctionTemplate;
import com.wkbb.basic.model.SysRoleUser;
import com.wkbb.basic.vo.*;
import com.wkbb.common.base.BaseService;

import java.util.List;
import java.util.Map;

/**
 * @author liuxiancan
 */
public interface SysRoleService extends BaseService<SysRole> {

    void updateRoleStatus(Map<String, Object> params);

    PageInfo<SysRoleUserVo> getRoleUserPageList(Map<String, Object> params, final Integer pageNo, final Integer pageSize);

    void insertSysRoleUserBatch(Long orgId,Long roleId,List<SysRoleUser> roleUserList);

    void deleteSysRoleUser(SysRoleUser sysRoleUser);

    PageInfo<SysRoleFunctionVo> getRoleFunctionPageList(Map<String, Object> params, final Integer pageNo, final Integer pageSize);

    List<SysRoleFunctionVo> getRoleFunctionTreeList(Map<String, Object> params);

    void saveSysRoleFunctionBatch(Long orgId,Long roleId,List<SysRoleFunction> roleFunctionList);

    List<SysFunctionVo> getUserFunctionTreeList(Map<String, Object> params);

    List<SysRoleFunctionTemplateVo> getRoleFunctionTemplateTreeList(Map<String, Object> params);

    void syncRoleFunctionTemplate(Long orgId);

    void saveSysRoleFunctionTemplateBatch(Long roleId,List<SysRoleFunctionTemplate> roleFunctionList);

    List<SysFunctionVo> getUserMenuButtonList(Map<String, Object> params);

    PageInfo<SysUserRoleVo> getUserRolePageList(Map<String, Object> params, final Integer pageNo, final Integer pageSize);

    List<SysUserRoleTypeVo> getUserRoleTypeList(Map<String, Object> params);

}
